public class Test {

	public static void main(String args[])
	{
	 A();
	}
	public static void A()
	{
		/*
		 *    1. Erzeugen Sie eine Instanz von SortedSet deren Elemente vom Typ Fuse sind. 
		 *    Fuegen Sie einige Schmelzsicherungen in unsortierter Reihenfolge ein, lesen Sie alle 
		 *    Elemente der Menge ueber den Iterator aus, und schreiben Sie die Durchbrenn-Zeiten der 
		 *    Sicherungen in die Standard-Ausgabe.
		 *    */
		System.out.println("------------1------------");
		System.out.println("IN:  34 45 12 24 26 103 7");
		//Liste Erzeugen
		SortedSet<Fuse> b = new SortedSet<Fuse>();
		//Einfuegen
		b.insert(new Fuse(34));
		b.insert(new Fuse(45));
		b.insert(new Fuse(12));
		b.insert(new Fuse(24));
		b.insert(new Fuse(26));
		Fuse k = new Fuse(103);
		b.insert(k);
		b.insert(k);
		b.insert(new Fuse(7));
		//Ausgabe
		System.out.print("Out: "+b.toString());
		System.out.println();
		
		/*
   2. Erzeugen Sie eine Instanz von AnnotatedSet deren Elemente 
   vom Typ Horse und Anmerkungen vom Typ Leopard sind - nicht sehr sinnvoll, 
   aber zum Testen gut geeignet. Fuegen Sie einige Pferde (in unsortierter Reihenfolge) 
   und Leoparden ein, lesen Sie alles ueber die Iteratoren aus, und schreiben Sie die Werte 
   fuer das Durchhaltevermoegen der Pferde und Leoparden (in den jeweiligen Messeinheiten) in 
   die Standard-Ausgabe.
   */
		System.out.println("------------2------------");
		System.out.println("IN: ");
		System.out.println("13: 66 78\n35: 35\n25: 90");
		//Liste Erzeugen
		AnnotatedSet<Racer,Racer> c = new AnnotatedSet<Racer,Racer>();
		//Insert
		Horse h1 = new Horse(12,13);
		c.insert(h1);
		Horse h2 = new Horse(34,35);
		c.insert(h2);
		Horse h3 = new Horse(24,25);
		c.insert(h3);
		c.insert(new Horse(22,24));
		c.insert(new Leopard(55,67));
		c.insert(new Leopard(66,90));
		
		//Leoparden als Anmerkungen erzeugen
		Leopard l1 = new Leopard(77,78);
		Leopard l2 = new Leopard(66,67);
		Leopard l3 = new Leopard(45,35);
		Leopard l4 = new Leopard(89,90);
		
		//Anmerkung Hinzufuegen
		c.annotated(h1, l1);
		c.annotated(h1, l2);
		c.annotated(h2, l3);
		c.annotated(h3, l4);
		
		//Ausgabe
		System.out.println("Out:(Sort nach Speed,speed nicht ausgegeben!!!) " +c.toString_durchh());
		System.out.println();
		
		
		/*
   3. Falls AnnotatedSet mit entsprechenden Typparameterersetzungen ein 
   Untertyp von SortedSet ist, betrachten Sie die in Punkt 2 erzeugte Menge als 
   Instanz von SortedSet, fuegen Sie noch ein (oder einige) Pferd(e) ein, lesen Sie 
   alle Elemente ueber den Iterator aus, und schreiben Sie das Durchhaltevermoegen der 
   Pferde in die Standard-Ausgabe. Dieser Punkt entfaellt, wenn AnnotatedSet kein Untertyp von SortedSet ist.*/
		
		
		System.out.println("------------3------------");
		System.out.println("");
		
   /*
   4. Erzeugen Sie eine Instanz von SortedSet deren Elemente vom Typ Racer sind. 
   Lesen Sie alle Elemente und Anmerkungen der in Punkt 2 erzeuten (und moeglicherweise in Punkt 3 erweiterten) Menge aus, 
   und fuegen Sie diese (sowohl Pferde als auch Leoparden) in die neue Menge ein. 
   Lesen Sie alle Elemente der neuen Menge aus, und schreiben Sie die Hoechstgeschwindigkeiten in die Standard-Ausgabe.  */
		
		System.out.println("------------4------------");
		
		SortedSet<Racer> d = new SortedSet<Racer>();
		
		//Horses und Leoparden von 2) in SortedSet schreiben
		d.insert(h1);
		d.insert(h2);
		d.insert(h3);
		d.insert(l1);
		d.insert(l2);
		d.insert(l3);
		d.insert(l4);
		
		//Ausgabe
		System.out.print("Out: "+d.toString());
		System.out.println();
	}
}
